﻿namespace BlogsAPI.Sites
{
    using System;
    using System.Text.RegularExpressions;
    using Abstract;

    /// <summary>
    /// Сервис коротких сообщений
    /// </summary>
    [Obsolete("умер",true)]
    [BlogServiceAPI(Description = "http://ljchat.ru", IsMicroblog = true)]
    public class Ljchat : BlogServer
    {
        #region interface: BlogServer

        /// <summary>
        /// Конструктор!
        /// </summary>
        public Ljchat()
        {
        }

        /// <summary>
        /// проверка, является ли передаваемый урл чатью этого сервиса
        /// </summary>
        public override Boolean ValidateLink(String sLink)
        {
            return Regex.IsMatch(sLink, @"^http://(?:\w+\.)?ljchat\.ru",
                Regexoptions);
        }


        /// <summary>
        /// Получение ссылки на блог блогера
        /// </summary>
        /// <param name="userName">ник блогера</param>
        public override String GetBlogLink(string userName)
        {
            return String.Format("http://ljchat.ru/{0}", userName);
        }

        /// <summary>
        /// проверка, является ли передаваемый урл чатью этого сервиса
        /// </summary>
        /// <param name="sLink">ссылка для проверки</param>
        /// <param name="userName">Имя пользователя на блогохостинге</param>
        /// <param name="bType">Тип блога - сообщество или блог</param>
        public override Boolean ValidateLink(String sLink, out String userName, out BlogType bType)
        {
            bType = BlogType.Unknown;
            userName = String.Empty;
            Match m = Regex.Match(sLink, @"^http://(?:[-_\w]+\.)?ljchat\.ru/(.*?)(?:/|$)",
                Regexoptions);
            if (m.Success)
            {
                bType = BlogType.User;
                userName = m.Groups[1].ToString();
            }
            return m.Success;
        }

        /// <summary>
        /// Получение ссылки на блог блогера
        /// </summary>
        /// <param name="userName">ник блогера</param>
        /// <param name="btype">Тип блога - сообщество или блог</param>
        public override String GetBlogLink(string userName, BlogType btype)
        {
            return GetBlogLink(userName);
        }

        /// <summary>
        /// Получение ссылки на RSS блогера - берем старым способом... парся страницу целиком
        /// </summary>
        /// <param name="UserName">ник блогера</param>
        /// <param name="btype"></param>
        /// <remarks>Неработает если имя пользователя русское, тогда нужен номер</remarks>
        public override String GetRssLink(string UserName, BlogType btype)
        {
            return String.Format("http://ljchat.ru/xml/user/rss?login={0}", UserName);
        }

        #endregion
    }
}